The goal of the data was a preliminary step in providing more information and trying to learn more about the when, what, why, and who. The small RMarkdown report will include interactive tables, graphs, and figures highlighting giveaway information over the years.

A) When

Let us begin with the question of when. Here, we will highlight tree giveaways each year and how they compare by season.

Map of Tree Giveaways Each Year

Interactive Total Plantings Each Year Table

Bar Chart of Total Plantings Each Year (Divided by Season)

Line Chart of Total Plantings Each Year (Divided by Season)

B) Where

The second question we must answer is where. Here, we will highlight the distribution of plantings. Many went to Baltimore City, Baltimore County, and outside the general area. We will also look at how these compare to plantings within Baltimore neighborhoods. Finally, we will look more closely at census tract information.

Map of the Three Jurisdictions

Interactive Plantings in Each Jurisdiction Table

Plantings in Each Jurisdiction in Each Year Data Table

Plantings in Each Jurisdiction in Each Year Graph

Plantings in Each Jurisdiction (Separated Graph)

Planting Number in Each Neighborhood of Baltimore Map

## Rows: 226 Columns: 2
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): Name
## dbl (1): count
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Plantings in Each Neighborhood Data Table

Top 20 Plantings of Neighborhood Graph

## Rows: 226 Columns: 2
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): Name
## dbl (1): count
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Plantings in Each Neighborhood and Year Data Table

Creating the datatable of the neighborhood and year

Giveaway Location Data Table

Giveaway Location Data Graph

Planting Number in Each Census Tract of Baltimore and Baltimore County Map

C) What

The third question we must answer is what. Here, briefly, we will look more specifically at the species giveaway in the area.

Top 10 Species Planted Map

Common Name Datatable

Common Name Graph (Both Rare and Common)

D) Who

The final question we must answer is who. Here, we will look more specifically at income and giveawaycount.

Synced map of Household Income and Giveaway Count

Scatter Plot of Household Income and Giveaway Count

Notes of BWB May 24th Meeting:

  • Fix the common names
  • Fix the 2017 and 2018 year data
  • Fix the 2020 to make
  • Normalization of the neighborhoods through square miles
  • Showing giveaways of the maps
  • Dexter is intereseted if the giveaways are going near their location
  • Preordering and phone calls, etc.
  • Species list needs reconciliations
  • Looked at the watersheds information
  • Are neighborhood trees going to more POC communities or white communities?
  • Running a climate susceiptibility for them to potentially change their species list
  • Finding applicabilities between other groups. See TreeBaltimore giveaways. Do the Grow Workshops track people closeby?
  • Reach people in lower outcome communities and we might have to deliver the trees (place more effort into that)
  • Chicago study showed and highlighted that within the neighborhood (people wanted more help in this end)
  • Look at Nathan Fran, the GIS person in Baltimore County. They do it erraditcally, Kary Obersten.
  • The main is something you can embed in the website within the About section. An interactive map where the public can click around. Something for the public to see. Maybe some JPEGs to place in some Power Points, as well
  • People can query by watershed, as well (so they can play with it)
  • Figuring out how many actually get planted and how many actually survived.

BWB notes

Sean self-taught GIS

2020 on bar and line charts should be zero, not NA

Cumulative? Giveaways

2018 and 2019 need to double check.

NA to zero on the giveaways maps

Plantings need some kind of normalization opportunities to plant

Top neighbor plantings high plantabilitiy high income

Switch to pre-ordering in the last two years total 5 tree per household limits no more than 3 understory trees per household

pre-order between 10-12 (30% don’t show up)
add trees for walk ups

Phone call reminders October start planning September

Giveaway locations on the map origin to destination need locations of giveaways change the giveaway label

Right tree right place

Species lists need further reconciliation (with Sean)

Climate suceptability

=== HERE

Questions:

WATERSHED Darin to send shape file

Origin / destination https://stackoverflow.com/questions/44283774/flow-maptravel-path-using-lat-and-long-in-r https://cran.r-project.org/web/packages/od/vignettes/od.html https://jcheshire.com/visualisation/mapping-flows/

JEDI Race/ethnicity Income PLACES https://experience.arcgis.com/experience/22c7182a162d45788dd52a2362f8ed65/.

Climate susceptibility (work w Nancy) species list

Other groups TB giveaways Grow centers origin destination BTT Baltimore Count Nathan Fran Cary

PRODUCTS: About page of the website click through let the public see when and where tangible and interactive. by Watershed JPEGs for PowerPoints simple communication tools Grant support?

Darin to-do: 2008 - 2012 data 2018 and 2019 need to double check email connection to Baltimore County September giveaway

- Making the BWB Giveaway Location tribble

# Making the tribble of giveaway_location
bwb_location_tribble <- 
  tribble(
  ~giveaway_location,                    ~entry_lat,                 ~entry_long,
  "Stillmeadow Community Fellowship",    "39.28149118084636",  "-76.6997041893354",
  "Herring Run Nursery",                 "39.372663174533386", "-76.578550239174",
  "Ridgely Manor Park",                  "39.39538407285143",  "-76.56664381155105",
  "Gwynns Falls Leakin Park",            "39.305631357367936", "-76.67893666401586", #Middle of the road
  "32nd Street Farmers Market",          "39.327535288081634", "-76.61061523990948",
  "JFX Farmers Market",                  "39.29268203155298",  "-76.60972412564519", 
  "REI Timonium",                        "39.43890264845818",  "-76.62880958625296",
  "West Towson ES",                      "39.404394375314446", "-76.63415717606557", #Assuming the elementary school
  "Cromwell Valley Harvest Festival",    "39.413977875188515", "-76.54667168973407", #Assuming Cromwell Valley Park
  "Cromwell Valley Park",                "39.413977875188515", "-76.54667168973407",
  "John Ruhrah ES",                      "39.28432439568278",  "-76.55246223392345",
  "Winand ES",                           "39.373018849783186", "-76.76232960664596",
  "St Matthews Catholic Church",         "39.35582240264951",  "-76.58866546616363",
  "Cherry Hill Urban Garden",            "39.24991878412569",  "-76.6270369680151",
  "Langston Hughes Community Center",    "39.34257749269637",  "-76.68024157650481",
  "Darley Park Gateway",                 "39.31530315544997",  "-76.59325254326163", 
  "Anneslie",                            "39.37594316032152",  "-76.60440999973999",
  "Ridgeleigh",                          "39.39532552607871",  "-76.55700617739024", #Assuming Ridgeleigh Park
  "Rodgers Forge",                       "39.377385831798314", "-76.62046978150337", #Assuming the Stoneleigh apartment
  "Stoneleigh",                          "39.38293280601465",  "-76.60227172784485", #Assuming a local park
  "Washington Hill Fall Community Day",  "39.29153646657451",  "-76.59385521007198", #Assuming middle of street
  "Chestnut Hill",                       "39.334010001213116", "-76.60617940430386"  #Assuming Chestnut Hill Park
  )

# Making the sf object
bwb_giveaway_location_sf <-
  bwb_total_giveaway |>
    st_drop_geometry() |>
    tabyl(giveaway_location) |> 
    as_tibble() |> 
    arrange(desc(n)) |>
    slice(-1) |> 
    rename("Number of Trees" = n) |>
    mutate(percent = round(100 * percent, 2)) |>
    left_join(bwb_location_tribble, by = "giveaway_location")
# Setting the mapbox token
set_token("pk.eyJ1IjoiZWR1YXJkb3NtYXJpbiIsImEiOiJjbHd2OXFsam0wbnk3MmtxOHlqYW1xbXFqIn0.WyYbUxQ1_9SwZvGBEqUehA")

# Making the origin destination

bwb_giveaway_location_sf$entry_lat <-
  as.numeric(as.character(bwb_giveaway_location_sf$entry_lat))

bwb_giveaway_location_sf$entry_long <-
  as.numeric(as.character(bwb_giveaway_location_sf$entry_long))

# Making the ending destination

## First have to find retrieve again the lat and long
coords_bwb_total_giveaway <- 
  st_coordinates(bwb_total_giveaway)

coords_bwb_data_frame <-   
  as.data.frame(coords_bwb_total_giveaway) |>
  rename(ending_lat = "X", ending_long = "Y")

bwb_total_giveaway_lat_long <-
  cbind(st_drop_geometry(bwb_total_giveaway), ... = coords_bwb_data_frame) |>
  rename("ending_long" = "....ending_lat", "ending_lat" = "....ending_long")

## Re-doing what we did earlier

bwb_total_giveaway_lat_long$ending_lat <-
  as.numeric(as.character(bwb_total_giveaway_lat_long$ending_lat))

bwb_total_giveaway_lat_long$ending_long <-
  as.numeric(as.character(bwb_total_giveaway_lat_long$ending_long))

## Left joining to add the entry_lat and entry_long for the same dataframe
bwb_total_giveaway_destination <-
left_join(bwb_total_giveaway_lat_long, bwb_giveaway_location_sf, by = "giveaway_location") |>
  dplyr::select(-`valid_percent`,-`Number of Trees`,-`percent`) |>
  filter(!is.na(giveaway_location))

bwb_total_giveaway_destination |>
  write_csv("output_data/bwb_total_giveaway_destination")
  
  
## Using mapdeck
mapdeck(
  style = mapdeck_style('dark')
  , location = c(104, 1)
  , zoom = 8
  , pitch = 45
) |>
  add_arc(
    data = bwb_total_giveaway_destination
    , origin = c("entry_long", "entry_lat")
    , destination = c("ending_long", "ending_lat")
    , layer_id = 'arcs'
    , stroke_from_opacity = 100
    , stroke_to_opacity = 100
    , stroke_width = 3
    , stroke_from = "#ccffff"
    , stroke_to = "#ccffff"
  )
## Registered S3 method overwritten by 'jsonify':
##   method     from    
##   print.json jsonlite